package fei.zhou.lambdalearn.demo5;

import java.util.ArrayList;
import java.util.function.Function;
import java.util.function.Predicate;

/**
 * 描述该类- JPA
 *
 * @author zhoufei
 * @class: Toshow
 * @date 2020/12/22 20:49
 * @Verson 1.0 -2020/12/22 20:49
 * @see
 */
public class Demo4 {
    
    public static void main(String[] args) {
        
        System.out.println("--------把一个字符串转换int类型，在控制台输出----------");
        convert("100", s -> Integer.parseInt(s));
        
        System.out.println("--------把一个int类型的数据加上一个整数之后，转为字符串在控制台输出----------");
        convert(100, i -> String.valueOf(i + 566));
        
        System.out.println("--------把一个字符串转换int类型，把int类型的数据加上一个整数之后，转为字符串在控制台输出----------");
        convert("100", s -> Integer.parseInt(s), i -> String.valueOf(i + 566));
    }
    
    // 把一个字符串转换int类型，在控制台输出
    private static void convert(String s, Function<String, Integer> fun) {
        int i = fun.apply(s);
        System.out.println(i);
    }
    
    // 把一个int类型的数据加上一个整数之后，转为字符串在控制台输出
    private static void convert(int i, Function<Integer, String> fun) {
        String s = fun.apply(i);
        System.out.println(s);
    }
    
    // 把一个字符串转换int类型，把int类型的数据加上一个整数之后，转为字符串在控制台输出
    private static void convert(String s, Function<String, Integer> fun1, Function<Integer, String> fun2) {
        // Integer i = fun1.apply(s);
        // String ss = fun2.apply(i);
        // System.out.println(ss);
        
        String ss = fun1.andThen(fun2).apply(s);
        System.out.println(ss);
    }
}